import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:ichinesereader/constants.dart';
import 'package:ichinesereader/controller/cache.dart';
import 'package:ichinesereader/controller/reports.dart';
import 'package:ichinesereader/pages/common/report/classReportBottom.dart';
import 'package:ichinesereader/pages/common/report/classReportOverallData.dart';
import 'package:ichinesereader/utils/log.dart';

class TeacherReportsClass extends StatefulWidget {
  TeacherReportsClass({Key? key}) : super(key: key);
  static const String routeName = '/teacher/reports/class';

  @override
  _TeacherReportsClass createState() => _TeacherReportsClass();
}

class _TeacherReportsClass extends State<TeacherReportsClass> {
  final ReportsController _reportsController = Get.put(ReportsController());
  var box = Hive.box('appconfig');

  var selectedTime = Constants.timeRanges[0];
  var startTime;
  var endTime;
  String classId = '';

  void fetchOverallData(classId, startTime, endTime) {
    _reportsController.fetchClassOverviewTotalData(
        classId!, startTime, endTime);
  }

  void fetchChartData(classId) {
    _reportsController.fetchClassProficiencyLevelData(classId);
    _reportsController.fetchClassSkillsData(classId, false);
  }

  @override
  void initState() {
    classId = box.get(CacheManagerKey['currentclass'].toString());
    Future.delayed(Duration(milliseconds: 1200), () {
      fetchOverallData(classId, startTime, endTime);
      fetchChartData(classId);
    });

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    Log.debug('build teacher report class');

    return Scaffold(
        backgroundColor: Colors.transparent,
        // drawer: isSmallScreen ? TeacherAppDrawer() : null,
        // appBar: isSmallScreen ? CustomAppBar(title: 'Class Reports'.tr) : null,
        // //floatingActionButton: FloatingActionButtonsTeacherSwitchClass(),
        body: SingleChildScrollView(
          scrollDirection: Axis.vertical,
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              // Row(
              //     mainAxisAlignment: MainAxisAlignment.start,
              //     children: [
              //       InkWell(
              //         onTap: () {
              //           Get.toNamed('/teacher/home');
              //         },
              //         child: Stack(
              //           alignment: Alignment.centerLeft,
              //           children: [
              //             Container(
              //               margin: EdgeInsets.only(right: 6.0),
              //               decoration: _pageStyles
              //                   .reportInkwellBoxDecoration(),
              //               padding: EdgeInsets.fromLTRB(
              //                   0.0, 18.0, 12.0, 18.0),
              //               width: 210,
              //               alignment: Alignment.centerRight,
              //               child: Text(
              //                 "Go Back Teacher",
              //                 style: (TextStyle(
              //                     color: Colors.white,
              //                     letterSpacing: 1.2,
              //                     fontSize: 15.0)),
              //               ),
              //             ),
              //             Padding(
              //               padding: const EdgeInsets.only(left: 12.0),
              //               child: Stack(
              //                 alignment: Alignment.center,
              //                 children: [
              //                   Container(
              //                     width: 45.0,
              //                     height: 45.0,
              //                     decoration: BoxDecoration(
              //                         shape: BoxShape.circle,
              //                         color: Get.theme.primaryColorDark
              //                             .withOpacity(0.5)),
              //                   ),
              //                   Container(
              //                     width: 36.0,
              //                     height: 36.0,
              //                     decoration: BoxDecoration(
              //                       shape: BoxShape.circle,
              //                       boxShadow: [
              //                         BoxShadow(
              //                           color: Get.theme.primaryColor,
              //                           offset: const Offset(
              //                             1.0,
              //                             1.0,
              //                           ),
              //                           blurRadius: 3.0,
              //                           spreadRadius: 2.0,
              //                         ), //BoxShadow
              //                         BoxShadow(
              //                           color: Get
              //                               .theme.primaryColorLight
              //                               .withOpacity(0.9),
              //                           offset: const Offset(0.0, 0.0),
              //                           blurRadius: 0.0,
              //                           spreadRadius: 0.0,
              //                         ), //BoxShadow
              //                       ],
              //                     ),
              //                   ),
              //                 ],
              //               ),
              //             )
              //           ],
              //         ),
              //         // ),
              //         // Padding(
              //         //   padding: const EdgeInsets.only(left: 30.0),
              //         //   child: Text(
              //         //     'Class Reports',
              //         //     style: TextStyle(fontSize: 30.0),
              //         //   ),
              //       ),
              //     ]),
              Column(children: [
                Obx(() => ClassReportOverallData(
                      selectedTime: selectedTime,
                      updateSelectedTime: (arg) {
                        setState(() {
                          selectedTime = arg;
                        });
                      },
                      startTime: startTime,
                      endTime: endTime,
                      updateCustomTime: (arg1, arg2) {
                        setState(() {
                          startTime = arg1;
                          endTime = arg2;
                        });
                        fetchOverallData(classId, arg1, arg2);
                      },
                      classOverviewTotalData:
                          _reportsController.classoverviewtotal.value,
                    )),
                ClassReportBottom()
              ])
            ],
          ),
        )

        // Container(
        //   decoration: _pageStyles.pageBoxDecoration(),
        //   child: Row(
        //     children: [
        //       Visibility(
        //           visible: !isSmallScreen,
        //           child: TeacherSidebarX(
        //               selectedIndex: _selectedSidebarItem,
        //               isBigScreen: isBigScreen)),
        //       Expanded(
        //         flex: 10,
        //         child: Container(
        //           margin: _pageStyles.teacherReportMainContainerPageEdgeInsets(),
        //           child: SingleChildScrollView(
        //             scrollDirection: Axis.vertical,
        //             child: Column(
        //               crossAxisAlignment: CrossAxisAlignment.start,
        //               children: [
        //                 // Row(
        //                 //     mainAxisAlignment: MainAxisAlignment.start,
        //                 //     children: [
        //                 //       InkWell(
        //                 //         onTap: () {
        //                 //           Get.toNamed('/teacher/home');
        //                 //         },
        //                 //         child: Stack(
        //                 //           alignment: Alignment.centerLeft,
        //                 //           children: [
        //                 //             Container(
        //                 //               margin: EdgeInsets.only(right: 6.0),
        //                 //               decoration: _pageStyles
        //                 //                   .reportInkwellBoxDecoration(),
        //                 //               padding: EdgeInsets.fromLTRB(
        //                 //                   0.0, 18.0, 12.0, 18.0),
        //                 //               width: 210,
        //                 //               alignment: Alignment.centerRight,
        //                 //               child: Text(
        //                 //                 "Go Back Teacher",
        //                 //                 style: (TextStyle(
        //                 //                     color: Colors.white,
        //                 //                     letterSpacing: 1.2,
        //                 //                     fontSize: 15.0)),
        //                 //               ),
        //                 //             ),
        //                 //             Padding(
        //                 //               padding: const EdgeInsets.only(left: 12.0),
        //                 //               child: Stack(
        //                 //                 alignment: Alignment.center,
        //                 //                 children: [
        //                 //                   Container(
        //                 //                     width: 45.0,
        //                 //                     height: 45.0,
        //                 //                     decoration: BoxDecoration(
        //                 //                         shape: BoxShape.circle,
        //                 //                         color: Get.theme.primaryColorDark
        //                 //                             .withOpacity(0.5)),
        //                 //                   ),
        //                 //                   Container(
        //                 //                     width: 36.0,
        //                 //                     height: 36.0,
        //                 //                     decoration: BoxDecoration(
        //                 //                       shape: BoxShape.circle,
        //                 //                       boxShadow: [
        //                 //                         BoxShadow(
        //                 //                           color: Get.theme.primaryColor,
        //                 //                           offset: const Offset(
        //                 //                             1.0,
        //                 //                             1.0,
        //                 //                           ),
        //                 //                           blurRadius: 3.0,
        //                 //                           spreadRadius: 2.0,
        //                 //                         ), //BoxShadow
        //                 //                         BoxShadow(
        //                 //                           color: Get
        //                 //                               .theme.primaryColorLight
        //                 //                               .withOpacity(0.9),
        //                 //                           offset: const Offset(0.0, 0.0),
        //                 //                           blurRadius: 0.0,
        //                 //                           spreadRadius: 0.0,
        //                 //                         ), //BoxShadow
        //                 //                       ],
        //                 //                     ),
        //                 //                   ),
        //                 //                 ],
        //                 //               ),
        //                 //             )
        //                 //           ],
        //                 //         ),
        //                 //         // ),
        //                 //         // Padding(
        //                 //         //   padding: const EdgeInsets.only(left: 30.0),
        //                 //         //   child: Text(
        //                 //         //     'Class Reports',
        //                 //         //     style: TextStyle(fontSize: 30.0),
        //                 //         //   ),
        //                 //       ),
        //                 //     ]),
        //                 Column(children: [
        //                   Obx(() => ClassReportOverallData(
        //                         selectedTime: selectedTime,
        //                         updateSelectedTime: (arg) {
        //                           setState(() {
        //                             selectedTime = arg;
        //                           });
        //                         },
        //                         startTime: startTime,
        //                         endTime: endTime,
        //                         updateCustomTime: (arg1, arg2) {
        //                           setState(() {
        //                             startTime = arg1;
        //                             endTime = arg2;
        //                           });
        //                           fetchOverallData(classId, arg1, arg2);
        //                         },
        //                         classOverviewTotalData:
        //                             _reportsController.classoverviewtotal.value,
        //                       )),
        //                   ClassReportBottom()
        //                 ])
        //               ],
        //             ),
        //           ),
        //         ),
        //       ),
        //     ],
        //   ),
        // ),
        );
  }
}
